package com.bdqn.spark.chapter05.value

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Spark01_RDD_Operator_Transform {
  def main(args: Array[String]): Unit = {
    val conf: SparkConf = new SparkConf().setMaster("local").setAppName("rdd-transformation-map")
    val sc: SparkContext = new SparkContext(conf)

    // 算子 - map
    val sourceRDD: RDD[Int] = sc.makeRDD(List(1, 2, 3, 4),2)

    // 需求：把每个数据，扩大为原来的2倍
    def doubleEle(num: Int): Int = {
      println("==============")
      num * 2
    }

    // 得到一个RDD，你面的元素，都在原来的基础上 * 2
     val doubleValueRDD: RDD[Int] = sourceRDD.map(doubleEle)
    // val doubleValueRDD: RDD[Int] = sourceRDD.map((num: Int) => num * 2)
    // val doubleValueRDD: RDD[Int] = sourceRDD.map(num => num * 2)
    // val doubleValueRDD: RDD[Int] = sourceRDD.map(_ * 2)


    doubleValueRDD.collect.foreach(println)
    sc.stop()
  }
}
